987. Vertical Order Traversal of a Binary Tree - LeetCode Solution


Hash Tree DFS

Python Code:

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution:
    def verticalTraversal(self, root: TreeNode) -> List[List[int]]:
        
        def dfs(root, xpos, ypos):
            if not root:
                return 
            
            d[xpos].append((ypos, root.val))
            dfs(root.left,xpos-1,ypos+1)
            dfs(root.right,xpos+1,ypos+1)
        
        d = defaultdict(list)
        
        dfs(root,0,0)            
        return [ [z for y,z in sorted(ve)] for kay, ve in sorted(d.items())]
        


Comments

Submit
0 Comments
More Questions

1515E - Phoenix and Computers
1552B - Running for Gold
994A - Fingerprints
1221C - Perfect Team
1709C - Recover an RBS
378A - Playing with Dice
248B - Chilly Willy
1709B - Also Try Minecraft
1418A - Buying Torches
131C - The World is a Theatre
1696A - NIT orz
1178D - Prime Graph
1711D - Rain
534A - Exam
1472A - Cards for Friends
315A - Sereja and Bottles
1697C - awoo's Favorite Problem
165A - Supercentral Point
1493A - Anti-knapsack
1493B - Planet Lapituletti
747B - Mammoth's Genome Decoding
1591C - Minimize Distance
1182B - Plus from Picture
1674B - Dictionary
1426C - Increase and Copy
520C - DNA Alignment
767A - Snacktower
1365A - Matrix Game
714B - Filya and Homework
31A - Worms Evolution